Message filtering system

ABSTRACT

A message filtering system is provided including a message management unit and a message monitoring unit in communication with the message management unit. The message management unit is configured to send and receive message over a network and to route messages to the message monitoring unit based on a message source, and the message monitoring unit is configured to parse the message and locate identifiers in the message and to re-route the message based on the identifier located in the message.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.12/189,565, filed Aug. 11, 2008, by Shekhar Gupta and entitled, “MessageFiltering System”, which is hereby incorporated by reference in itsentirety.

BACKGROUND OF THE INVENTION

Use of electronic messaging is growing at exponential rates. As the useof electronic messaging increases, additional risks and dangers arepresented which require monitoring large amounts of data forinappropriate communications. The use of electronic messaging is evenmore concerning when one considers the number of children currentlyusing electronic messaging. As has been well documented in the media,electronic messaging is commonly used by sexual predators and others wholook to harm children. Monitoring of electronic messaging by parents isvery difficult to do in real time, which results to children beingexposed to inappropriate and dangerous information.

Currently, parents who are interested in viewing the electronic messagestheir children send and receive have limited options. Parents can viewold e-mails or text messages directly on the child's communicationdevice. In addition, logging software can save copies of the child'selectronic messages on a server or workstation. However, thesemonitoring devices do not act in real time. Also, the parent is requiredto read all the text messages generated which is very time consuming. Aneed exists for a monitoring system which will automatically parse everymessage a child receives for inappropriate content and to notify parentsif inappropriate content is received.

SUMMARY OF THE INVENTION

Systems, methods, features, and advantages of the present invention willbe or will become apparent to one with skill in the art upon examinationof the following figures and detailed description. It is intended thatall such additional systems, methods, features, and advantages beincluded within this description, be within the scope of the invention,and be protected by the accompanying claims.

In one embodiment employing principals of the invention, a messagefiltering system is provided which includes a message management unitand a message monitoring unit in communication with the messagemanagement unit. The message management unit is configured to send andreceive message over a network and to route messages to the messagemonitoring unit based on a message source. In addition, the messagemonitoring unit is configured to parse the message and locateidentifiers in the message and to re-route the message based on theidentifier located in the message.

In another embodiment employing the principals of the invention, amethod of filtering messages comprising the steps of receiving a messageand routing the message based on the message source address,transmitting the message to a message monitoring unit via a network,parsing the message for an identifier, and routing the message based onthe identifier located within the message is provided.

In another embodiment employing the principals of the invention, amessage monitoring system is provided including a plurality ofcommunication devices and at least one monitoring unit in communicationwith the communication device. The communication devices are configuredto transmit messages over a network and the monitoring unit isconfigured to intercept messages between at least two communicationdevices and examine the contents of the messages.

In yet another embodiment employing the principals of the invention, amethod of restricting messages from reaching a destination is providedincluding the steps of intercepting a message between at least twocommunication devices via a monitoring unit, parsing the message for aidentifier, comparing the identifier to a plurality of knownidentifiers, and preventing delivery of the message based on theidentification of a known identifier in the message.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this specification, illustrate an implementation of the presentinvention and, together with the description, serve to explain theadvantages and principles of the invention. In the drawings:

FIG. 1 depicts one embodiment of a message filtering system consistentwith the present invention.

FIG. 2 depicts one embodiment of the message management unit and messagemonitoring unit consistent with the present invention.

FIG. 3A depicts one embodiment of a communication device consistent withthe present invention.

FIG. 3B depicts one embodiment of a monitoring unit consistent with thepresent invention.

FIG. 4 is an illustrative example of one embodiment of the messagefiltering system which is consistent with the present invention.

DETAILED DESCRIPTION OF THE INVENTION

Referring now to the drawings which depict different embodimentsconsistent with the present invention, wherever possible, the samereference numbers will be used throughout the drawings and the followingdescription to refer to the same or like parts.

FIG. 1 depicts one embodiment of a message filtering system 100consistent with the present invention. The message filtering system 100includes a network 102, a communication device A 104, a communicationdevice B 106, and a monitoring unit 108. The message filtering system100 further includes a user terminal 110, a message management unit 112and a message monitoring unit 114. In general, the message managementunit 112 manages and controls the communications traffic of the network102. The message management unit 112 also routes messages between thecommunication devices 104 and 106. When the message management unit 112receives a message from an address of a predetermined communicationdevice 104 and 106 address, it re-routes the message to the messagemonitoring unit 114. The message monitoring unit 114 compares thecontents of the message with identifiers stored in an identifierlibrary. If an identifier in the message matches an identifier in theidentifier library, the message is forwarded through the messagemanagement unit 112 to a monitoring unit 108. The message monitoringunit 114 requests authorization from the monitoring unit 108 to send themessage to the destination address. Further, the terminal unit 110 mayallow a user to register monitoring unit 108 addresses, communicationdevice 104 and 106 addresses, communication device 104 and 106 addressesfrom which messages are restricted, and identifiers into one or morelibraries stored on the message monitoring unit 114 or the messagemanagement unit 112.

The message monitoring unit 114 and message management unit 112 may beembodied by one or more servers. Alternatively, each of the messagemonitoring unit 114 and message management unit 112 may be implementedusing any combination of hardware and software, whether as incorporatedin a single device or as a functionally distributed across multipleplatforms and devices.

In one embodiment, the network 102 is a cellular network, a TCP/IPnetwork, or any other suitable network topology. In another embodiment,the message monitoring unit 114 and the message management unit 112 maybe servers, workstations, network appliances or any other suitable datastorage devices. In yet another embodiment, message monitoring unit 114and message management unit 112 may be combined into a single server,workstation, network appliance or suitable data storage device. Inanother embodiment, the communication devices 104 and 106 may be anycombination of cellular phones, telephones, personal data assistants, orany other suitable communication devices. In another embodiment, themonitoring unit 108 may be any combination of cellular phones,telephones, personal data assistants, or any other suitablecommunication devices. In addition, terminal unit 110 may be a server,workstation, network appliance or any other suitable network terminaldevice.

In one embodiment, the network 102 may be any private or publiccommunication network known to one skilled in the art such as a localarea network (“LAN”), wide area network (“WAN”), peer-to-peer network,cellular network or any suitable network, using standard communicationprotocols. The network 102 may include hardwired as well as wirelessbranches.

In another embodiment, the message management unit 112 may be configuredto restrict messages between communication devices 104 and 106. Themessage management unit 112 may be configured to store a list ofrestricted addresses for each communication device 104 and 106. Inaddition, the message management unit 112 may be configured to store theaddress of a monitoring unit 108 where messages from restrictedaddresses have been previously re-routed and denied delivery.

In yet another embodiment, the message monitoring unit 114 may beconfigured to store a list of words in memory. When a message from acommunication device 104 and 106 is received at the message managementunit 112, the message management unit 112 may forward the message to themessage monitoring unit 114. The message monitoring unit 114 may parsethe message for words that match the words stored in the memory of themessage monitoring unit 114. If a match is found, the message monitoringunit 114 may re-route the message to the monitoring unit 108 fordelivery approval.

In another embodiment, the monitoring unit 108 is configured to allow auser to determine if the message may be forwarded on to the originaldestination address. If the user declines to send the message to theoriginal address, the message is stored on the message monitoring unit114 and the message is not sent to the destination address. If the userallows the message to pass through, the message monitoring unit 114transfers the message to the message management unit 112 which transmitsthe message to original destination addresses of the communicationdevices 104 and 106.

As an illustrative example of the operation of the message filteringsystem 101, communication device A 104 transmits a message tocommunication device B 106. First, the message may be sent to themessage management unit 112. The message management unit 112 comparesthe address of communication device A 104 with a list of addressesstored in memory to determine if communication device A 104 is aregistered or restricted address. If communication device A 104 isrestricted from sending messages to communication device B 106, themessage may not sent to communication device B 106.

If communication device A 104 is a registered unit, the messagemanagement software determines if communication device B 106 is arestricted communication device. If communication device B 106 is arestricted address, the message may be stored on the message monitoringunit 114 and the message is not sent. If communication device B 106 isnot a restricted unit, the message may be sent to the message monitoringunit 114 which locates words within the message and compares the wordsto a library of words on the message monitoring unit 114. If any of thewords of the message match a word in the library, the message monitoringunit 114 forwards the message to the monitoring unit 108 in real time.

The monitoring unit 108 displays the message to a user, via themonitoring unit 108, who may be given the option of allowingtransmission of the message to communication device B 106 or denyingtransmission of the message. If the user denies transmission, themessage may be stored on the message monitoring unit 114 and may be notsent to communication device B 106. If the user allows transmission, themessage may be sent to the message management unit 112 which transmitsthe message to communication device B 106.

FIG. 2 depicts one embodiment of a message management unit 202 andmessage monitoring unit 218 consistent with the present invention. Themessage management unit 202 includes a network I/O device 204, aprocessor 206, a memory 208 storing message distribution software 210and an address library 212. The message distribution software 210running in memory 208 of the message management unit 202 is operativelyconfigured to receive a message 216 from the network I/O device 204 andto extract the sending communication device address as well as thedestination communication device address from the message. In addition,the message distribution software 210 is operatively configured tocompare the sending communication device address of the message 216against a list of addresses restricted from sending messages to thedestination address. If the sending address is identified in the addresslibrary 212, the message is re-routed via the network 214 to the messagemonitoring unit 218 for further analysis.

In one embodiment, the processor 206 may be a central processing unit(“CPU”), a application specific integrated circuit (“ASIC”), amicroprocessor or any other suitable processing device. The memory 208may include a hard disk, random access memory, cache, removable mediadrive, mass storage or configuration suitable as storage for data,instructions, and information. In one embodiment, the memory 208 andprocessor 206 may be integrated. The memory may use any type of volatileor non-volatile storage techniques and mediums. The network I/O line 204device may be a network interface card, a plain old telephone service(“POTS”) interface card, an ASCII interface card, or any other suitablenetwork interface device. The network I/O interface devices 204 and 220may be a network interface card, a wireless network interface card orany other suitable network interface device. The message distributionsoftware 210 may be a compiled program running on a server, a processrunning on a microprocessor or any other suitable port control software.

The message monitoring unit 218 includes a network I/O device 220, aprocessor 222, a memory 224 storing registration software 226 andmessage analysis software 228, an identifier library 230, and a messagelibrary 232. The message analysis software 228 is operatively configuredto extract a plurality of identifiers from the body of the message 216.Each identifier extracted is compared to a list of identifiers stored inthe identifier library 230. If any one of the identifiers matches anidentifier in the identifier library 230, the message 216 is re-routedto a monitoring unit, such as monitoring unit 108 from FIG. 1, via thenetwork I/O device 220. If the monitoring unit allows the message 216 toproceed to the destination address, the authorization is received by themessage monitoring unit 218 via the network I/O device 220 and themessage 216 is sent to the message management unit 202 via the network214. If the monitoring unit denies the message 216, the message isstored in the message library 232.

In one embodiment, the processor 222 may be a central processing unit(“CPU”), a application specific integrated circuit (“ASIC”), amicroprocessor or any other suitable processing device. The memory 224may include a hard disk, random access memory, cache, removable mediadrive, mass storage or configuration suitable as storage for data,instructions, and information. In another embodiment, the memory 224 andprocessor 222 may be integrated. The memory may use any type of volatileor non-volatile storage techniques and mediums. The network I/O device220 may be a network interface card, a plain old telephone service(“POTS”) interface card, an ASCII interface card, a wirelesstransceiver, or any other suitable network interface device. Theregistration software 226 may be an a web server application, a compiledprogram running on a server, a process running on a microprocessor orany other suitable registration software. The message analysis software228 may be a compiled program running on a server, a process running ona microprocessor or any other suitable registration software.

The registration software 226 is operatively configured to interact witha terminal unit, such as terminal unit 110 from FIG. 1. The registrationsoftware 226 is configured to collect a listing of communication deviceaddresses between which communication is restricted. The registrationsoftware 226 receives the communication device addresses via the networkI/O device 220 and forwards the addresses to message distributionsoftware 210 for storage in the address library 212 of the messagemanagement unit 202. In addition, the registration software 226 gathersa listing of restricted identifiers for the received communicationsdevice addresses which may be stored in the identifier library 230. Theregistration software 226 may interact with the terminal unit using auser interface such as, but not limited to, a web page, a compiledprogram, a text based ASCII terminal or any other suitable userinterface.

In one embodiment, the message analysis software 228 queries onlineservers to update the list of identifiers available in the identifierlibrary 230. As an illustrative example, the identifiers in theidentifier library may be words, such as slang words. In this example,the message analysis software 228 queries web sites which storecurrently listings of slang words including, but not limited to slangdictionary web sites, text message shorthand dictionary and any otheronline source of current slang or shorthand messaging words. The messageanalysis software 228 may be configured to compare the contents of eachweb site with the current contents in the identifier library 230 and toupdate the contents of the identifier library 230 as needed.

In another embodiment, the registration software 226 may allow a user toconfigure the message monitoring unit 218. In an illustrative example, auser located at a terminal unit, such as a cellular phone orworkstation, may connect to the registration software 226 on the messagemonitoring unit 218 via the network 214. The registration software 226may present a user interface to the terminal unit where the user mayenter destination communication device addresses as well ascommunication device addresses which are restricted from communicatingwith the destination communication device addresses. In addition, theregistration software 226 may query the identifier library 230 andpresent a complete list of all identifiers to a user on the terminalunit. The user may then select the identifiers which will initiate there-routing of a message containing the identifier sent to a destinationcommunication device address.

FIG. 3A depicts one embodiment of a communication device 302 consistentwith the present invention. The communication device 302 includes aprocessor 304, an audio output 306, a display output 308, a network I/Odevice 310, and memory 312 running messaging software 314.

The communication device 302 further includes a display unit 316connected to a display output 308, an audio unit 318 connected to aaudio output 306, and a user input 319 connected to a user input device321, such as but not limited to a mouse or a keypad. The messagingsoftware 314 is operatively configured to send and receive messages overthe network 320 via the network I/O device 310. In addition, theprocessor 304 and messaging software 314 are operatively configured totransmit the message to the display output 308 for presentation on thedisplay unit 316 and also to present an audio tone to the audio output306 for playing of an audio tone on the audio unit 318.

In one embodiment, the processor 304 may be a central processing unit(“CPU”), a application specific integrated circuit (“ASIC”), amicroprocessor or any other suitable processing device. The memory 312may include a hard disk, random access memory, cache, removable mediadrive, mass storage or configuration suitable as storage for data,instructions, and information. In one embodiment, the memory 312 andprocessor 304 may be integrated. The memory may use any type of volatileor non-volatile storage techniques and mediums. The network I/O device310 may be a network interface card, a plain old telephone service(“POTS”) interface card, an ASCII interface card, or any other suitablenetwork interface device. The messaging software 314 may be an a shortmessaging service (“SMS”) program, multimedia messaging service (“MMS”),a compiled program running, a process running on a microprocessor or anyother suitable registration software.

In one embodiment, the network 320 may be any private or publiccommunication network known to one skilled in the art such as a LocalArea Network (“LAN”), Wide Area Network (“WAN”), Peer-to-Peer Network,Cellular network or any suitable network, using standard communicationprotocols. The network 320 may include hardwired as well as wirelessbranches.

FIG. 3B depicts one embodiment of a monitoring unit 332 consistent withthe present invention. The monitoring unit 322 includes a processor 324,an audio output 326, a display output 328, a network I/O device 330,memory 332 running monitoring software 334. The monitoring unit 322further includes a display unit 336 connected to the display output 328,a audio unit 338 connected to the audio output 326, and a user input 340connected to a user input device 342, such as but not limited to akeyboard or a mouse. The monitoring software 314 is operativelyconfigured to send and receive messages to and from the messagemonitoring unit, such as the message monitoring unit 218 of FIG. 2, overthe network 320 via the network I/O device 330. In addition, theprocessor 324 and monitoring software 334 are operatively configured totransmit a message to the display output 328 for presentation on thedisplay unit 336 and also to present a audio tone to the audio output326 for playing of an audio tone on the audio unit 338.

In one embodiment, the processor 324 may be a central processing unit(“CPU”), a application specific integrated circuit (“ASIC”), amicroprocessor or any other suitable processing device. The memory 332may include a hard disk, random access memory, cache, removable mediadrive, mass storage or configuration suitable as storage for data,instructions, and information. In one embodiment, the memory 332 andprocessor 324 may be integrated. The memory may use any type of volatileor non-volatile storage techniques and mediums. The network I/O device330 may be a network interface card, a plain old telephone service(“POTS”) interface card, an ASCII interface card, a wirelesstransceiver, or any other suitable network interface device. Themessaging software 334, may be an a short messaging service program, acompiled program running, a process running on a microprocessor or anyother suitable registration software.

In one embodiment, the monitoring unit 322 receives a message from themessage monitoring unit via the network 334. The network I/O device 330routes the message to the messaging software 334. The monitoringsoftware 334 receives a message from the message monitoring software.The monitoring software 334 transmits the message to the display output328 for display on the display unit 336. A user viewing the message onthe display unit 336 has the option of confirming or denying thedelivery of the message via the user input device. The monitoringsoftware 334 sends the response received from the user input device 321to the message monitoring unit 322.

FIG. 4 is an illustrative example of one embodiment of a messagefiltering system implemented according to the present invention. In thisembodiment, a plurality of communications units 402 are connected to anetwork 404 along with a plurality of monitoring units 406, a messagemanagement unit 408, a message monitoring unit 410 and a terminal unit412. A user may register addresses of communication devices 402 in themessage management unit 408. In addition, a user may register addressesof communication devices 403 that are restricted from communicating withthe registered communication devices 402. Once the addresses areregistered, the user is shown a list of keyword identifiers which theuser may select to trigger the re-routing of a message.

When one of the plurality of communication devices 402 transmits amessage to another communications unit 403, the message is firsttransmitted to the message management unit 408. Software operating onthe message management unit checks the source communication device 402address and the destination communication device 403 address with thelist of registered communication device 402 addresses and restrictedcommunication device 403 addresses. If the message source address is arestricted communication device 403 address, the message is not sent tothe destination communication device 403 address.

If the message is sent from a registered communication device 402 or anon restricted communication device 402, the message is transmitted tothe message monitoring unit 410. The message monitoring unit 410 parsesthe message for identifiers, such as words, and compares each identifierlocated with a list of identifiers in a identifier database stored in alibrary on the message monitoring unit 410. If the identifiers in themessage match any one identifier in the identifier library, the messageis re-routed to at lease one monitoring unit 406. The monitoring unit406 displays the message and prompts a user to approve the delivery ofthe message to the destination communication device 403 address. If theuser denies the delivery, the message is stored in a message library onthe message monitoring unit 410 and is not sent to the destinationcommunication device address 403. If delivery of the message ispermitted, the message monitoring unit 410 transmits the message to themessage management unit 408 which routes the message to the destinationcommunication device 403 address. In yet another embodiment, the messagemonitoring unit 410 and monitoring unit 406 are combined into a singledevice.

Because the message filtering system allows for real time monitoring ofmessages, messages can be monitored for inappropriate language orcontent. With the abundance of electronic messages generated each day,having the ability to automatically review and divert questionablemessages reduces the time required to manage a data communicationsystem.

In yet another illustrative embodiment, when one of the plurality ofcommunication devices 402 transmits a message to another communicationsunit 403, the message is first transmitted to the message managementunit 408. Software operating on the message management unit checks thesource communication device 402 address and the destinationcommunication device 403 address with the list of registeredcommunication device 402 addresses and identified communication device403 addresses. If the message source address is an identifiedcommunication device address or a registered communication device 402address, the message is sent to the destination communication deviceaddress and to at least one message monitoring unit 406. Additionalmessages sent between the source communication device 402 or destinationcommunication device 403 are mirrored on the message monitoring unit406. By allowing the mirroring of messages between two communicationdevices, a parent or a guardian of children is capable of monitoringcommunications between children and others thereby improving thesecurity of communications between children and others.

While various embodiments of the present invention have been described,it will be apparent to those of skill in the art that many moreembodiments and implementations are possible that are within the scopeof this invention. Accordingly, the present invention is not to berestricted except in light of the attached claims and their equivalents.

What is claimed is:
 1. A method of filtering messages comprising:receiving at a computer system a short message service message sent froman originating communication device and addressed to a destinationcommunication device; determining with the computer system if an addressof the originating communication device is a restricted address storedin a restricted address library, wherein the step of determining if theaddress of the originating communication device is a restricted addressis performed with a first processor of the computer system; prohibiting,with the first processor, delivery of the message to the destinationcommunication device if the address of the originating communicationdevice is a restricted address; transmitting the message to a secondprocessor of the computer system, if the address of the originatingcommunication device is not a restricted address; searching, with thesecond processor, the content of the message for one or morepre-determined words, wherein the step of searching the content of themessage for one or more pre-determined words is performed with a thesecond processor which is physically separate from the first processorand in communication with the first processor over a network; routingthe message from the second processor to a monitoring communicationdevice in real-time, if at least one or more pre-determined words isidentified in the message; receiving, at the second processor,instructions from the monitoring communication device to allow orprohibit delivery of the message to the destination communicationdevice; in response to receiving instructions to allow delivery of themessage, re-routing the message from the monitoring communication deviceto the second processor; and forwarding, the message from the secondprocessor to the first processor for delivery of the message to thedestination communication device; and in response to receivinginstructions to prohibit delivery of the message, re-routing the messagefrom the monitoring communication device to the second processor;prohibiting delivery of the message to the destination communicationdevice; and storing the message in a message library associated with thesecond processor.
 2. The method of claim 1, wherein the step ofsearching the message for at least one or more pre-determined wordscomprises comparing the content of the message with a plurality ofkeywords stored in a keyword identifier library in associated with thesecond processor.
 3. The method of claim 2, wherein the second processorautomatically updates the keyword library with keywords from on-linesources.
 4. The method of claim 1, wherein the originating communicationdevice, the destination communication device and the monitoringcommunication device are at least one or more of a cellular phone, apersonal data assistant, or a voice over internet protocol phone.
 5. Themethod of claim 1, further comprising storing the address of theoriginating communication device in the restricted address library onthe first processor in response to receiving instructions to prohibitdelivery of the message to the destination communication device.
 6. Acomputer system for filtering short message service messages, thecomputer system comprising: a first processor; a second processor; and anon-transitory computer readable medium in communication with the firstand second processors, the computer readable medium having encodedthereon a set of instructions that upon execution by the first andsecond processors cause the computer system to perform operations in theset of instructions, comprising: instructions for receiving a shortmessage service message sent from an originating communication deviceand addressed to a destination communication device; instructions fordetermining if an address of the originating communication device is arestricted address stored in a restricted address library, wherein theinstructions for determining if the address of the originatingcommunication device is a restricted address are executed with a firstprocessor of the computer system; instructions for prohibiting, deliveryof the message to the destination communication device if the address ofthe originating communication device is a restricted address;instructions for transmitting the message to a second processor, if theaddress of the originating communication device is not a restrictedaddress; instructions for searching, the content of the message for oneor more pre-determined words, wherein the instructions for searching thecontent of the message for one or more pre-determined words are executedwith the second processor which is physically separate from the firstprocessor and in communication with the first processor over a network;instructions for routing the message from the second processor to amonitoring communication device in real-time, if at least one or morepre-determined words is identified in the message; instructions forreceiving instructions at the second processor from the monitoringcommunication device to allow delivery or prohibit delivery of themessage to the destination communication device; in response toreceiving instructions to allow delivery of the message, re-routing themessage from the monitoring communication device to the secondprocessor; and forwarding, the message from the second processor to thefirst processor for delivery of the message to the destinationcommunication device; and in response to receiving instructions toprohibit delivery of the message, re-routing the message from themonitoring communication device to the second processor; prohibitingdelivery of the message to the destination communication device; andstoring the message in a message library associated with the secondprocessor.
 7. The system of claim 6, wherein the set of instructionsfurther comprise instructions for searching the message for at least oneor more pre-determined words comprises comparing the content of themessage with a plurality of keywords stored in a keyword identifierlibrary in associated with the second processor.
 8. The system of claim7, wherein the set of instructions further comprise instructions toautomatically updates the keyword library with keywords from on-linesources.
 9. The system of claim 6, wherein the originating communicationdevice, the destination communication device and the monitoringcommunication device are at least one or more of a cellular phone, apersonal data assistant, or a voice over internet protocol phone. 10.The system of claim 6, wherein the set of instructions further compriseinstructions for storing the address of the originating communicationdevice in the restricted address library on the first processor inresponse to receiving instructions to prohibit delivery of the messageto the destination communication device.